Failsafe pulsed laser driver

ABSTRACT

A failsafe pulsed laser driver and method for using the same are disclosed. In one embodiment, an apparatus comprises a laser array having a plurality of lasers; and a laser driver coupled to the laser array, wherein the laser driver comprises a current limiter to provide a maximum current at or below a threshold current of lasers in the laser array or at a current level to meet laser safety requirements under circuit failure conditions; one or more capacitors coupled to current limiter and the laser array, the one or more capacitors to be charged in response to current from the current limiter; and a switch coupled to the one or more capacitors operable to cause current from the one or more capacitors to flow through the laser array.

FIELD OF THE INVENTION

Embodiments of the present invention are related to lasers for use incamera systems; more particularly, embodiments of the present inventionare related to laser drivers for use in driving such lasers.

BACKGROUND

Stereoscopic systems can be used to image objects in three dimensions(3D) to create images that provide a description of the world where eachpixel is defined as have Red-Green-Blue (RGB) and depth values. Suchsystems often include a projector and two or more cameras. The projectorprojects a known spatially varying intensity pattern on an object (e.g.,a scene), and an image of the object upon which the image is projectedis captured by the cameras. From the captured images, depth informationmay be determined. One technique for determining depth in such devicesis through the use of triangulation. Thus, images of objects arecaptured and measurements are taken to determine depth information.These 3D systems are known as an “Assisted 3D Stereoscopic DepthCamera”, and an example of an Intel® RealSense™ R200 Camera.

The projector in the stereoscopic system may be a vertical cavitysurface emitter laser (VCSEL)-based infrared (IR) projector. AVCSEL-based IR projection contains a laser “chip” consisting ofthousands of individual lasers operated in parallel. Each laser requiresa minimum current, known as a threshold current, before laser emissionis observed. In order to operate the laser efficiently, the laser shouldoperate at many times the threshold current.

Further, although the laser current required for an individual VCSEL ismodest, the current required for thousands of lasers in parallel can beseveral amps (e.g., 10 amps). A continuous light output at this highcurrent level represents a significant eye hazard. The average laseroutput must meet the needs of the 3D camera and meet the needs for aneye safe level to meet Food and Drug Administration (FDA) class 1 laserrequirements which is required for certain applications. Besides meetingoperating requirements for class 1 operation, the laser system must alsobe safe even when the circuit has single point failure.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood more fully from the detaileddescription given below and from the accompanying drawings of variousembodiments of the invention, which, however, should not be taken tolimit the invention to the specific embodiments, but are for explanationand understanding only.

FIG. 1 illustrates one embodiment of a camera system.

FIG. 2 illustrates one embodiment of a stereoscopic camera system.

FIG. 3 illustrates an example of an IR projected pattern.

FIG. 4 is a circuit schematic of one embodiment of a laser driver.

FIG. 5 is an example of a single metal-oxide-semiconductor field-effecttransistor (MOSFET) for use in discharging the one or more capacitors toprovide a power pulse to a laser array (e.g., VCSEL array).

FIG. 6 is a flow diagram of one embodiment of a process for generatingdepth values.

FIG. 7 is a block diagram of one embodiment of a system.

FIG. 8 illustrates an embodiment of a computing environment capable ofsupporting the operations described herein.

DETAILED DESCRIPTION OF THE PRESENT INVENTION

In the following description, numerous details are set forth to providea more thorough explanation of the present invention. It will beapparent, however, to one skilled in the art, that the present inventionmay be practiced without these specific details. In other instances,well-known structures and devices are shown in block diagram form,rather than in detail, in order to avoid obscuring the presentinvention.

The description may use the phrases “in an embodiment,” or “inembodiments,” which may each refer to one or more of the same ordifferent embodiments. Furthermore, the terms “comprising,” “including,”“having,” and the like, as used with respect to embodiments of thepresent disclosure, are synonymous.

The term “coupled with,” along with its derivatives, may be used herein.“Coupled” may mean one or more of the following. “Coupled” may mean thattwo or more elements are in direct physical, electrical, or opticalcontact. However, “coupled” may also mean that two or more elementsindirectly contact each other, but yet still cooperate or interact witheach other, and may mean that one or more other elements are coupled orconnected between the elements that are said to be coupled with eachother. The term “directly coupled” may mean that two or more elementsare in direct contact.

FIG. 1 illustrates one embodiment of a stereoscopic camera system. Thesystem includes projects a dot pattern onto a scene using a projectorand captures images of the projected dot pattern to produce depthinformation therefrom. The depth information may be determined usingwell-known techniques such as, for example, triangulation or disparityof distance.

Referring to FIG. 1, capture device 100 may include a 3D scanner, one ormore 3D cameras 101 or any other device configured for a 3D objectacquisition. In some embodiments, as illustrated, capture device 100includes multiple image capturing cameras (e.g., an image capturingdevice 102 (e.g., a digital infrared (IR) camera), image capturingdevice 103 (e.g., a digital color camera), image capturing device 108(e.g., a digital IR camera), etc.) and a projector unit 104, such as alaser projector or laser scanner, having a number of components. In someembodiments, the projector unit 104 may comprise an IR projector.

Projector unit 104 is configured to project a dot pattern. The dotpattern formed by projector unit 104 on a surface of the object may bereceived by image capturing devices 102 and 108 via sensing by a sensorof image capturing devices 102 and 108. Based on the captured images,capture device 100 may be configured to reconstruct the shape of theobject.

In some embodiments, capture device 100 may further include anotherimage capturing device, such as digital camera 103. In some embodiments,digital camera 103 may have a resolution that is different than that ofdigital cameras 102 and 108. For example, digital camera 103 may be amulti-chromatic camera, such as red, green, and blue (RGB) cameraconfigured to capture texture images of an object.

In one embodiment, capture device 100 comprises an IR projector, an RGBcamera (e.g., sensor) and two IR cameras (e.g., sensors) coupled to aprinter circuit board (PCB) as shown in FIG. 2.

Capture device 100 may further include a processor 106 that may be inoperative communication with the image camera component 101 over a busor interconnect 107. Processor 106 may include a standardized processor,a specialized processor, a microprocessor, or the like that may executeinstructions that may include instructions for generating depthinformation, generating a depth image, determining whether a suitabletarget may be included in the depth image, or performing otheroperations described herein.

Processor 106 may be configured to reconstruct the object based on theimages captured by digital camera 102, for example, using geometrytechniques or other techniques used for 3D image reconstruction.

Capture device 100 may further include a memory 105 that may store theinstructions that may be executed by processor 106, images or frames ofimages captured by the cameras, user profiles or any other suitableinformation, images, or the like. According to one example, memory 105may include random access memory (RAM), read only memory (ROM), cache,Flash memory, a hard disk, or any other suitable storage component. Asshown in FIG. 1, memory component 105 may be a separate component incommunication with the cameras 101 and processor 106. Alternatively,memory 105 may be integrated into processor 106 and/or the image capturecameras 101. In one embodiment, some or all of the components 102-106are located in a single housing.

Processor 105, memory 104, other components (not shown), image capturingdevice 102, and projector unit 104 may be coupled with one or moreinterfaces (not shown) configured to facilitate information exchangeamong the above-mentioned components. Communications interface(s) (notshown) may provide an interface for device 100 to communicate over oneor more wired or wireless network(s) and/or with any other suitabledevice. In various embodiments, capture device 100 may be included to orassociated with, but is not limited to, a server, a workstation, adesktop computing device, or a mobile computing device (e.g., a laptopcomputing device, a handheld computing device, a handset, a tablet, asmartphone, a netbook, ultrabook, etc.).

In one embodiment, capture device 100 is integrated into a computersystem (e.g., laptop, personal computer (PC), etc.). However, capturedevice 100 can be alternatively configured as a standalone device thatis couplable to such a computer system using conventional technologiesincluding both wired and wireless connections.

In various embodiments, capture device 100 may have more or lesscomponents, and/or different architectures. For example, in someembodiments, capture device 100 may include one or more of a camera, akeyboard, display such as a liquid crystal display (LCD) screen(including touch screen displays), a touch screen controller,non-volatile memory port, antenna or multiple antennas, graphics chip,ASIC, speaker(s), a battery, an audio codec, a video codec, a poweramplifier, a global positioning system (GPS) device, a compass, anaccelerometer, a gyroscope, and the like. In various embodiments,capture device 100 may have more or less components, and/or differentarchitectures. In various embodiments, techniques and configurationsdescribed herein may be used in a variety of systems that benefit fromthe principles described herein.

Capture device 100 may be used for a variety of purposes, including, butnot limited to, being part of a target recognition, analysis, andtracking system to recognize human and non-human targets in a capturearea of the physical space without the use of special sensing devicesattached to the subjects, uniquely identify them, and track them inthree-dimensional space. Capture device 100 may be configured to capturevideo with depth information including a depth image that may includedepth values via any suitable technique including, for example,triangulation, disparity of distance, time-of-flight, structured light,stereo image, or the like.

Capture device 100 may be configured to operate as a depth camera thatmay capture a depth image of a scene. The depth image may include atwo-dimensional (2D) pixel area of the captured scene where each pixelin the 2D pixel area may represent a depth value such as a distance in,for example, centimeters, millimeters, or the like of an object in thecaptured scene from the camera. In this example, capture device 100includes an IR light projector 404, an IR camera 102, an IR camera 108,and a visible light RGB camera 103 that are configured in an array.

Various techniques may be utilized to capture depth video frames. Forexample, capture device 100 may use structured light to capture depthinformation. In such an analysis, light displayed as a known dot patternmay be projected onto the capture area via, for example, IR lightprojector 104. Capture device 100 may utilize two or more physicallyseparated cameras that may view a capture area from different angles, toobtain visual stereo data that may be resolved to generate depthinformation (e.g., a depth map). The depth information may be generatedusing known techniques, such as, for example, triangulation or disparityof distance. Other types of depth image arrangements using single ormultiple cameras can also be used to create a depth image.

Capture device 100 may provide the depth information and images capturedby, for example, IR camera 102, IR camera 108, and/or the RGB camera103, including a skeletal model and/or facial tracking model that may begenerated by capture device 100, where the skeletal and/or facialtracking models, depth information, and captured images are used to, forexample, create a virtual screen, adapt the user interface, and controlan application.

In summary, capture device 100 may comprise a projector unit 104, adigital camera (e.g., IR camera) 102, a digital camera (e.g., IR camera)108, another digital camera (e.g., multi-chromatic camera) 103, and aprocessor (controller) configured to operate capture device 100according to the embodiments described herein. However, the aboveassembly configuration is described for illustration purposes only, andis should not be limiting to the present disclosure. Variousconfigurations of an assembly for a 3D object acquisition may be used toimplement the embodiments described herein. For example, an assembly fora 3D object acquisition configured to enable the reconstructed objectdistortion corrections may include three digital cameras, two of whichmay be used to reconstruct a 3D image of an object, and the third camera(e.g. with a resolution that is different than those of the two cameras)may be used to capture images of the object in order to identify imagedistortions in the reconstructed object and to compensate for identifieddistortions.

IR Projector

As discussed above, a coded light camera comprising a projector 104(e.g., an IR projector) projects a dot pattern onto the scene, and an IRcameras 102 and 108 capture the dot pattern. In one embodiment, theprocessing unit is operable to generate a depth value based on the newprojector location coordinate and a camera location coordinate.

In one embodiment, the IR projector comprises a vertical cavity surfaceemitting laser (VCSEL) array based pattern projector having a VCSELarray that projects an IR projected pattern. FIG. 3 illustrates anexample of an IR projected pattern.

In one embodiment, a laser driver drives the VCSEL array. In oneembodiment, the driver drives the array with high current pulses in aninherently failsafe manner. In one embodiment, the laser drivercomprises a capacitor that is charged through a current limiting circuitor other component. In one embodiment, the capacitor is a small valuecapacitor. In one embodiment, the capacitor comprises multiplecapacitors that are coupled together. A switch (e.g., a transistor(e.g., a metal-oxide-semiconductor field-effect transistor (MOSFET))) iscoupled to the capacitor to discharge the capacitor into the laserarray. In one embodiment, the switch is a high current switch. In oneembodiment, the laser driver comprises a timing circuit that controlsthe pulse width and pulse period of the current pulse discharged fromthe capacitor.

In one embodiment, the driver has a number of failsafe features. Thefirst failsafe feature is provided by the size of the capacitor. Thecapacitor limits the total energy that can be discharged into the VCSELarray. If the timing circuit or the pass transistor fail, the maximumenergy that could be discharged into the VCSEL array would be limited bythe size of the capacitor.

The second failsafe feature is a current limited circuit that chargesthe capacitor. In one embodiment, the current limited circuit is set toprovide a maximum current at or below the combined threshold current ofthe laser. In one embodiment, the VCSELs in the array are connected inparallel. Therefore, the combined threshold current refers to the sum ofthe threshold current for each individual VCSEL. If the timing circuitor the switch (e.g., the MOSFET transistor) fails, the current throughthe VCSEL array would not produce an intense laser light.

Since one embodiment of the laser driver circuit is designed to beinherently failsafe, additional circuits are not required to ensureclass 1 laser safety.

FIG. 4 is a circuit schematic of one embodiment of a laser driver.Referring to FIG. 4, current limiting circuit 401A receives current froman input 420 and provides the current to capacitor 402. If the currentis higher than a predetermined limit, then current limiting circuit 401Aprevents the current from passing to capacitor 402. In one embodiment,current limiting circuit 401A limits the current that goes into VSCELarray 410 to at or below the threshold current of sum of the VCSELs inVCSEL array 410. Thus, current limiting circuit 401A limits the peakcurrent to the VCSEL-based platform. In one embodiment, current limitingcircuit 401A comprises a current limited load switch. In anotherembodiment, current limiting circuit is a resistor 401B.

Capacitor 402 is coupled to current limiting circuit 401A and charges inresponse to current from current limiting circuit 401A. Based on itssize, capacitor 402 is limited in the amount of total energy it deliversto VCSEL array 410. When discharging, capacitor 403 provides a highcurrent pulse to VCSEL array 410. In one embodiment, the current pulseis strong so that a very large amount of light is provided by VCSELarray 410 but for a very short duration of time. The amount of energyavailable is a function of the charge of capacitor 402, which is basedon its size and the amount of voltage put on it.

Note that capacitor 402 is shown as a single capacitor. However,capacitor 402 may comprise multiple capacitors coupled together toprovide a single capacitance. In one embodiment, capacitor 402 comprisesa 22 μF capacitor. In another embodiment, capacitor 402 comprises a 40μF capacitor. In one embodiment, the capacitor selected for use is sizedto provide an amount of energy beyond the threshold current of the VCSELarray being used to have VCSEL array provide a predetermined amount ofillumination for a desired period of time (e.g., time to project apattern on an object).

Switch 403 is coupled to VCSEL array 410 and causes capacitor 402 todischarge capacitor 403 into VCSEL array 410 when switch 403 is closed(i.e., on). In one embodiment, switch 403 comprises two (or more)transistors coupled in parallel between VCSEL array 410 and ground. Thisarrangement may be useful to provide a switch with lower resistance thanif a single transistor is used. In alternative embodiment, switch 403comprises a single MOSFET, such as shown in FIG. 5.

Timing circuit 405 controls when capacitor 402 discharges. In oneembodiment, timing circuit 405 controls the discharge of capacitor 402by controlling switch 403. In one embodiment, timing circuit 405 adjuststhe illumination intensity provided by VCSEL array 410. In oneembodiment, timing circuit 405 controls the illumination intensity bycontrolling the pulse width (or duty cycle) and pulse period of thecurrent pulse discharged from capacitor 402. In one embodiment, timingcircuit 405 is programmed based on the size of capacitor 402 and theamount of voltage used to charge capacitor 402, as well as the durationof illumination desired.

Note that the laser driver circuit also includes an optional gate driver404 to boost the level of signals output from timing circuit 405. Thismay be used to drive a much larger current to switch 403 than ispossible with the output signal(s) of timing circuit 405.

Note that the circuit schematics shows other components the operation ofwhich would be well understood by those in the art. For example, thereare connectors shown in FIG. 4, which are used for test and are notnecessary for some embodiments. One such connector is connector 406 thatis used to load firmware into the microprocessor and to help debug thefirmware. In one embodiment, this feature is optional and not neededduring the normal operation of the laser driver circuit. Thesecomponents have not been described in detail in order to avoid obscuringthe present invention.

In one embodiment, multiple regions on the VCSEL array are operated bymultiple laser drivers. For example, there may be three independentregions of the array, one on the left, one in the center, and one on theright, that are each driven separately. In one embodiment, only thecentral region is illuminated when a wide view is not needed. This savespower. Also, the regions could be illuminated in an interleaving mannerto support power saving on a rolling shutter camera. Furthermore, theVCSELs could be driven in an interleaved manner to obtain differentresolutions.

In one embodiment, the laser driver circuit also present a low peakcurrent load to the rest of the system, making the power deliveryrequirements friendly to mobile platforms.

FIG. 6 is a flow diagram of one embodiment of a process for generatingdepth values. The process is performed by processing logic that maycomprises hardware, software, firmware or a combination of the three.

Referring to FIG. 6, the process begins by charging one or more one ormore capacitors coupled to a laser array (processing block 601). In oneembodiment, the laser array comprises a vertical cavity surface emittinglaser (VCSEL) array comprising a plurality of VCSELs.

Next, a controller controls a switch to cause the one or more capacitorsto discharge a current pulse into the laser array to cause the laserarray to emit light (processing block 602). In one embodiment, thisincludes controlling pulse width and pulse duration of the current pulseby controlling the switch.

In response to the one or more capacitors discharging a current pulseinto the laser array, a dot pattern is projected on an object using aprojector (e.g., IR projector) using the light emitted from the laserarray (processing block 603).

The cameras captures a pair of images (processing block 604) and depthinformation is generated using the captured images, using, for example,triangulation (processing block 605).

FIG. 7 illustrates, for one embodiment, an example system 700 having oneor more processor(s) 704, system control module 708 coupled to at leastone of the processor(s) 704, system memory 712 coupled to system controlmodule 708, non-volatile memory (NVM)/storage 714 coupled to systemcontrol module 708, and one or more communications interface(s) 720coupled to system control module 708.

In some embodiments, the system 700 may include one or morecomputer-readable media (e.g., system memory or NVM/storage 714) havinginstructions and one or more processors (e.g., processor(s) 704) coupledwith the one or more computer-readable media and configured to executethe instructions to implement a module to perform image distortioncorrection calculation actions described herein.

System control module 708 for one embodiment may include any suitableinterface controllers to provide for any suitable interface to at leastone of the processor(s) 704 and/or to any suitable device or componentin communication with system control module 708.

System control module 708 may include memory controller module 710 toprovide an interface to system memory 712. The memory controller module710 may be a hardware module, a software module, and/or a firmwaremodule. System memory 712 may be used to load and store data and/orinstructions, for example, for system 700. System memory 712 for oneembodiment may include any suitable volatile memory, such as suitableDRAM, for example. System control module 708 for one embodiment mayinclude one or more input/output (I/O) controller(s) to provide aninterface to NVM/storage 714 and communications interface(s) 720.

The NVM/storage 714 may be used to store data and/or instructions, forexample. NVM/storage 714 may include any suitable non-volatile memory,such as flash memory, for example, and/or may include any suitablenon-volatile storage device(s), such as one or more hard disk drive(s)(HDD(s)), one or more compact disc (CD) drive(s), and/or one or moredigital versatile disc (DVD) drive(s), for example. The NVM/storage 714may include a storage resource physically part of a device on which thesystem 700 is installed or it may be accessible by, but not necessarilya part of, the device. For example, the NVM/storage 714 may be accessedover a network via the communications interface(s) 720.

Communications interface(s) 720 may provide an interface for system 700to communicate over one or more network(s) and/or with any othersuitable device. The system 700 may wirelessly communicate with the oneor more components of the wireless network in accordance with any of oneor more wireless network standards and/or protocols.

For one embodiment, at least one of the processor(s) 704 may be packagedtogether with logic for one or more controller(s) of system controlmodule 708, e.g., memory controller module 710. For one embodiment, atleast one of the processor(s) 704 may be packaged together with logicfor one or more controllers of system control module 708 to form aSystem in Package (SiP). For one embodiment, at least one of theprocessor(s) 704 may be integrated on the same die with logic for one ormore controller(s) of system control module 708. For one embodiment, atleast one of the processor(s) 704 may be integrated on the same die withlogic for one or more controller(s) of system control module 708 to forma System on Chip (SoC).

In various embodiments, the system 700 may have more or less components,and/or different architectures. For example, in some embodiments, thesystem 700 may include one or more of a camera, a keyboard, liquidcrystal display (LCD) screen (including touch screen displays),non-volatile memory port, multiple antennas, graphics chip,application-specific integrated circuit (ASIC), and speakers.

In various implementations, the system 700 may be, but is not limitedto, a mobile computing device (e.g., a laptop computing device, ahandheld computing device, a tablet, a netbook, etc.), a laptop, anetbook, a notebook, an ultrabook, a smartphone, a tablet, a personaldigital assistant (PDA), an ultra mobile PC, a mobile phone, a desktopcomputer, a server, a printer, a scanner, a monitor, a set-top box, anentertainment control unit, a digital camera, a portable music player,or a digital video recorder. In further implementations, the system 700may be any other electronic device.

FIG. 8 illustrates an embodiment of a computing environment 800 capableof supporting the operations discussed above. The modules describedbefore can use the depth information (e.g., values) and other datadescribed above to perform these functions. The modules and systems canbe implemented in a variety of different hardware architectures and formfactors.

Command Execution Module 801 includes a central processing unit to cacheand execute commands and to distribute tasks among the other modules andsystems shown. It may include an instruction stack, a cache memory tostore intermediate and final results, and mass memory to storeapplications and operating systems. Command Execution Module 801 mayalso serve as a central coordination and task allocation unit for thesystem.

Screen Rendering Module 821 draws objects on the one or more multiplescreens for the user to see. It can be adapted to receive the data fromVirtual Object Behavior Module 804, described below, and to render thevirtual object and any other objects and forces on the appropriatescreen or screens. Thus, the data from Virtual Object Behavior Module804 would determine the position and dynamics of the virtual object andassociated gestures, forces and objects, for example, and ScreenRendering Module 821 would depict the virtual object and associatedobjects and environment on a screen, accordingly. Screen RenderingModule 821 could further be adapted to receive data from Adjacent ScreenPerspective Module 807, described below, to either depict a targetlanding area for the virtual object if the virtual object could be movedto the display of the device with which Adjacent Screen PerspectiveModule 807 is associated. Thus, for example, if the virtual object isbeing moved from a main screen to an auxiliary screen, Adjacent ScreenPerspective Module 807 could send data to the Screen Rendering Module821 to suggest, for example in shadow form, one or more target landingareas for the virtual object on that track to a user's hand movements oreye movements.

Object and Gesture Recognition System 822 may be adapted to recognizeand track hand and harm gestures of a user. Such a module may be used torecognize hands, fingers, finger gestures, hand movements and a locationof hands relative to displays. For example, Object and GestureRecognition System 822 could for example determine that a user made abody part gesture to drop or throw a virtual object onto one or theother of the multiple screens, or that the user made a body part gestureto move the virtual object to a bezel of one or the other of themultiple screens. Object and Gesture Recognition System 822 may becoupled to a camera or camera array, a microphone or microphone array, atouch screen or touch surface, or a pointing device, or some combinationof these items, to detect gestures and commands from the user.

The touch screen or touch surface of Object and Gesture RecognitionSystem 822 may include a touch screen sensor. Data from the sensor maybe fed to hardware, software, firmware or a combination of the same tomap the touch gesture of a user's hand on the screen or surface to acorresponding dynamic behavior of a virtual object. The sensor date maybe used to momentum and inertia factors to allow a variety of momentumbehavior for a virtual object based on input from the user's hand, suchas a swipe rate of a user's finger relative to the screen. Pinchinggestures may be interpreted as a command to lift a virtual object fromthe display screen, or to begin generating a virtual binding associatedwith the virtual object or to zoom in or out on a display. Similarcommands may be generated by Object and Gesture Recognition System 822,using one or more cameras, without the benefit of a touch surface.

Direction of Attention Module 823 may be equipped with cameras or othersensors to track the position or orientation of a user's face or hands.When a gesture or voice command is issued, the system can determine theappropriate screen for the gesture. In one example, a camera is mountednear each display to detect whether the user is facing that display. Ifso, then the direction of attention module information is provided toObject and Gesture Recognition Module 822 to ensure that the gestures orcommands are associated with the appropriate library for the activedisplay. Similarly, if the user is looking away from all of the screens,then commands can be ignored.

Device Proximity Detection Module 825 can use proximity sensors,compasses, GPS (global positioning system) receivers, personal areanetwork radios, and other types of sensors, together with triangulation,disparity of distance, and other techniques to determine the proximityof other devices. Once a nearby device is detected, it can be registeredto the system and its type can be determined as an input device or adisplay device or both. For an input device, received data may then beapplied to Object Gesture and Recognition System 822. For a displaydevice, it may be considered by Adjacent Screen Perspective Module 807.

Virtual Object Behavior Module 804 is adapted to receive input fromObject Velocity and Direction Module 803, and to apply such input to avirtual object being shown in the display. Thus, for example, Object andGesture Recognition System 822 would interpret a user gesture and bymapping the captured movements of a user's hand to recognized movements,Virtual Object Tracker Module 806 would associate the virtual object'sposition and movements to the movements as recognized by Object andGesture Recognition System 822, Object and Velocity and Direction Module803 would capture the dynamics of the virtual object's movements, andVirtual Object Behavior Module 804 would receive the input from Objectand Velocity and Direction Module 803 to generate data that would directthe movements of the virtual object to correspond to the input fromObject and Velocity and Direction Module 803.

Virtual Object Tracker Module 806 on the other hand may be adapted totrack where a virtual object should be located in three-dimensionalspace in a vicinity of a display, and which body part of the user isholding the virtual object, based on input from Object Gesture andRecognition System 822. Virtual Object Tracker Module 806 may forexample track a virtual object as it moves across and between screensand track which body part of the user is holding that virtual object.Tracking the body part that is holding the virtual object allows acontinuous awareness of the body part's air movements, and thus aneventual awareness as to whether the virtual object has been releasedonto one or more screens.

Gesture to View and Screen Synchronization Module 808, receives theselection of the view and screen or both from Direction of AttentionModule 823 and, in some cases, voice commands to determine which view isthe active view and which screen is the active screen. It then causesthe relevant gesture library to be loaded for Object and GestureRecognition System 822. Various views of an application on one or morescreens can be associated with alternative gesture libraries or a set ofgesture templates for a given view.

Adjacent Screen Perspective Module 807, which may include or be coupledto Device Proximity Detection Module 825, may be adapted to determine anangle and position of one display relative to another display. Aprojected display includes, for example, an image projected onto a wallor screen. The ability to detect a proximity of a nearby screen and acorresponding angle or orientation of a display projected therefrom mayfor example be accomplished with either an infrared emitter andreceiver, or electromagnetic or photo-detection sensing capability. Fortechnologies that allow projected displays with touch input, theincoming video can be analyzed to determine the position of a projecteddisplay and to correct for the distortion caused by displaying at anangle. An accelerometer, magnetometer, compass, or camera can be used todetermine the angle at which a device is being held while infraredemitters and cameras could allow the orientation of the screen device tobe determined in relation to the sensors on an adjacent device. AdjacentScreen Perspective Module 807 may, in this way, determine coordinates ofan adjacent screen relative to its own screen coordinates. Thus, theAdjacent Screen Perspective Module may determine which devices are inproximity to each other, and further potential targets for moving one ormore virtual object's across screens. Adjacent Screen Perspective Module807 may further allow the position of the screens to be correlated to amodel of three-dimensional space representing all of the existingobjects and virtual objects.

Object and Velocity and Direction Module 803 may be adapted to estimatethe dynamics of a virtual object being moved, such as its trajectory,velocity (whether linear or angular), momentum (whether linear orangular), etc. by receiving input from Virtual Object Tracker Module806. The Object and Velocity and Direction Module 803 may further beadapted to estimate dynamics of any physics forces, by for exampleestimating the acceleration, deflection, degree of stretching of avirtual binding, etc. and the dynamic behavior of a virtual object oncereleased by a user's body part. Object and Velocity and Direction Module803 may also use image motion, size and angle changes to estimate thevelocity of objects, such as the velocity of hands and fingers

Momentum and Inertia Module 802 can use image motion, image size, andangle changes of objects in the image plane or in a three-dimensionalspace to estimate the velocity and direction of objects in the space oron a display. Momentum and Inertia Module 802 is coupled to Object andGesture Recognition System 822 to estimate the velocity of gesturesperformed by hands, fingers, and other body parts and then to applythose estimates to determine momentum and velocities to virtual objectsthat are to be affected by the gesture.

3D Image Interaction and Effects Module 805 tracks user interaction with3D images that appear to extend out of one or more screens. Theinfluence of objects in the z-axis (towards and away from the plane ofthe screen) can be calculated together with the relative influence ofthese objects upon each other. For example, an object thrown by a usergesture can be influenced by 3D objects in the foreground before thevirtual object arrives at the plane of the screen. These objects maychange the direction or velocity of the projectile or destroy itentirely. The object can be rendered by the 3D Image Interaction andEffects Module 805 in the foreground on one or more of the displays.

In a first example embodiment, an apparatus comprises a laser arrayhaving a plurality of lasers; and a laser driver coupled to the laserarray, wherein the laser driver comprises a current limiter to provide amaximum current at or below a threshold current of lasers in the laserarray or at a current level to meet laser safety requirements undercircuit failure conditions; one or more capacitors coupled to currentlimiter and the laser array, where the one or more capacitors are to becharged in response to current from the current limiter; and a switchcoupled to the one or more capacitors operable to cause current from theone or more capacitors to flow through the laser array.

In another example embodiment, the subject matter of the first exampleembodiment can optionally include a timing circuit coupled to controlthe switch. In another example embodiment, the subject matter of thisexample embodiment can optionally include that the timing circuit isoperable to control the pulse width and pulse period of the currentpulse discharged by the one or more capacitors into the laser array.

In another example embodiment, the subject matter of the first exampleembodiment can optionally include that the current limiter comprises acurrent limited load switch.

In another example embodiment, the subject matter of the first exampleembodiment can optionally include that the current limiter comprises oneor more resistors.

In another example embodiment, the subject matter of the first exampleembodiment can optionally include that the switch comprises atransistor. In another example embodiment, the subject matter of thisexample embodiment can optionally include that the transistor comprisesa MOSFET.

In another example embodiment, the subject matter of the first exampleembodiment can optionally include that the laser array comprises avertical cavity surface emitting laser (VCSEL) array comprising aplurality of VCSELs.

In a second example embodiment, an apparatus comprises: a projectorconfigured to project a dot pattern on an object, wherein the projectorcomprises a laser array having a plurality of lasers; and a laser drivercoupled to the laser array, wherein the laser driver comprises a currentlimiter to provide a maximum current at or below a threshold current oflasers in the laser array or at a current level to meet laser safetyrequirements under circuit failure conditions, one or more capacitorscoupled to current limiter and the laser array, the one or morecapacitors to be charged in response to current from the currentlimiter, and a switch coupled to the one or more capacitors operable tocause current from the one or more capacitors to flow through the laserarray; first and second cameras configured to simultaneously capture apair of images of the object illuminated with the dot pattern; and aprocessing unit to receive the captured pair of images and reconstructdepth information using the captured pair of images.

In another example embodiment, the subject matter of the second exampleembodiment can optionally include a timing circuit coupled to controlthe switch. In another example embodiment, the subject matter of thisexample embodiment can optionally include that the timing circuit isoperable to control the pulse width and pulse period of the currentpulse discharged by the one or more capacitors into the laser array.

In another example embodiment, the subject matter of the second exampleembodiment can optionally include that the current limiter comprises acurrent limited load switch.

In another example embodiment, the subject matter of the second exampleembodiment can optionally include that the current limiter comprises oneor more resistors.

In another example embodiment, the subject matter of the second exampleembodiment can optionally include that the switch comprises atransistor. In another example embodiment, the subject matter of thisexample embodiment can optionally include that the transistor comprisesa MOSFET.

In another example embodiment, the subject matter of the second exampleembodiment can optionally include that the laser array comprises avertical cavity surface emitting laser (VCSEL) array comprising aplurality of VCSELs.

In another example embodiment, the subject matter of the second exampleembodiment can optionally include that the projector comprises aninfrared (IR) projector and each of the first and second camerascomprises an IR camera.

In a third example embodiment, a method comprises charging one or moreone or more capacitors coupled to a laser array and controlling a switchto cause the one or more capacitors to discharge a current pulse intothe laser array to cause the laser array to emit light.

In another example embodiment, the subject matter of the third exampleembodiment can optionally include controlling pulse width and pulseduration of the current pulse by controlling the switch.

In another example embodiment, the subject matter of the third exampleembodiment can optionally include that the laser array comprises avertical cavity surface emitting laser (VCSEL) array comprising aplurality of VCSELs.

In another example embodiment, the subject matter of the third exampleembodiment can optionally include projecting a dot pattern on an objectusing a projector using the light emitted from the laser array;capturing simultaneously, using two camera, a pair of images of the dotpattern; and generating depth information using the pair of images.

Some portions of the detailed descriptions above are presented in termsof algorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or the like, refer to the action andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The present invention also relates to apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but is not limited to, any type ofdisk including floppy disks, optical disks, CD-ROMs, andmagnetic-optical disks, read-only memories (ROMs), random accessmemories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any typeof media suitable for storing electronic instructions, and each coupledto a computer system bus.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present invention is not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the invention as described herein.

A machine-readable medium includes any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputer). For example, a machine-readable medium includes read onlymemory (“ROM”); random access memory (“RAM”); magnetic disk storagemedia; optical storage media; flash memory devices; etc.

Whereas many alterations and modifications of the present invention willno doubt become apparent to a person of ordinary skill in the art afterhaving read the foregoing description, it is to be understood that anyparticular embodiment shown and described by way of illustration is inno way intended to be considered limiting. Therefore, references todetails of various embodiments are not intended to limit the scope ofthe claims which in themselves recite only those features regarded asessential to the invention.

We claim:
 1. An apparatus comprising: a laser array having a pluralityof lasers; and a laser driver coupled to the laser array, wherein thelaser driver comprises a current limiter to provide a maximum current ator below a threshold current of lasers in the laser array or at acurrent level to meet laser safety requirements under circuit failureconditions; one or more capacitors coupled to current limiter and thelaser array, the one or more capacitors to be charged in response tocurrent from the current limiter; a switch coupled to the one or morecapacitors operable to cause current from the one or more capacitors toflow through the laser array.
 2. The apparatus defined in claim 1further comprising a timing circuit coupled to control the switch. 3.The apparatus defined in claim 2 wherein the timing circuit is operableto control the pulse width and pulse period of the current pulsedischarged by the one or more capacitors into the laser array.
 4. Theapparatus defined in claim 1 wherein the current limiter comprises acurrent limited load switch.
 5. The apparatus defined in claim 1 whereinthe current limiter comprises one or more resistors.
 6. The apparatusdefined in claim 1 wherein the switch comprises a transistor.
 7. Theapparatus defined in claim 6 wherein the transistor comprises a MOSFET.8. The apparatus defined in claim 1 wherein the laser array comprises avertical cavity surface emitting laser (VCSEL) array comprising aplurality of VCSELs.
 9. An apparatus comprising: a projector configuredto project a dot pattern on an object, wherein the projector comprises alaser array having a plurality of lasers; and a laser driver coupled tothe laser array, wherein the laser driver comprises a current limiter toprovide a maximum current at or below a threshold current of lasers inthe laser array or at a current level to meet laser safety requirementsunder circuit failure conditions; one or more capacitors coupled tocurrent limiter and the laser array, the one or more capacitors to becharged in response to current from the current limiter; a switchcoupled to the one or more capacitors operable to cause current from theone or more capacitors to flow through the laser array; first and secondcameras configured to simultaneously capture a pair of images of theobject illuminated with the dot pattern; and a processing unit toreceive the captured pair of images and reconstruct depth informationusing the captured pair of images.
 10. The apparatus defined in claim 9further comprising a timing circuit coupled to control the switch. 11.The apparatus defined in claim 10 wherein the timing circuit is operableto control the pulse width and pulse period of the current pulsedischarged by the one or more capacitors into the laser array.
 12. Theapparatus defined in claim 9 wherein the current limiter comprises acurrent limited load switch.
 13. The apparatus defined in claim 9wherein the current limiter comprises one or more resistors.
 14. Theapparatus defined in claim 9 wherein the switch comprises a transistor.15. The apparatus defined in claim 14 wherein the transistor comprises aMOSFET.
 16. The apparatus defined in claim 9 wherein the laser arraycomprises a vertical cavity surface emitting laser (VCSEL) arraycomprising a plurality of VCSELs.
 17. The apparatus defined in claim 9wherein the projector comprises an infrared (IR) projector and each ofthe first and second cameras comprises an IR camera.
 18. A methodcomprising: charging one or more one or more capacitors coupled to alaser array; and controlling a switch to cause the one or morecapacitors to discharge a current pulse into the laser array to causethe laser array to emit light.
 19. The method defined in claim 18further comprising controlling pulse width and pulse duration of thecurrent pulse by controlling the switch.
 20. The method defined in claim18 wherein the laser array comprises a vertical cavity surface emittinglaser (VCSEL) array comprising a plurality of VCSELs.
 21. The methoddefined in claim 18 further comprising: projecting a dot pattern on anobject using a projector using the light emitted from the laser array;capturing simultaneously, using two camera, a pair of images of the dotpattern; and generating depth information using the pair of images.